package com.example.csmall.product.mapper;

import com.example.csmall.product.pojo.entity.Album;
import com.example.csmall.product.pojo.entity.AttributeTemplate;
import com.example.csmall.product.pojo.vo.AlbumListItemVO;
import com.example.csmall.product.pojo.vo.AlbumStandardVO;
import com.example.csmall.product.pojo.vo.AttributeTemplateListItemVO;
import com.example.csmall.product.pojo.vo.AttributeTemplateStandardVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AttributeTemplateMapper {

    /**
     * 插入一条数据
     * @param attributeTemplate
     * @return
     */
    int insert(AttributeTemplate attributeTemplate);

    /**
     * 添加多条记录
     * @param attributeTemplates
     * @return
     */
    int insertBatch(List<AttributeTemplate> attributeTemplates);

    /**
     * 根据ID删除数据
     * @param id
     * @return
     */
    int deleteById(Long id);

    /**
     * 统计表中信息
     * @return
     */
    int count();

    /**
     * 批量根据id删除数据
     * @param ids
     * @return
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据id修改数据
     * @param attributeTemplate
     * @return
     */
    int updateById(AttributeTemplate attributeTemplate);

    /**
     * 根据name查询name相同的数据
     * @param name 用户传入的参数
     * @return 统计好的数据
     */
    int countName(String name);

    /**
     * 根据name统计数量
     * @param name
     * @return
     */
    int countByName(String name);

    /**
     * 根据name和非此id统计数量
     * @param id
     * @param name
     * @return 行数
     */
    int countByNameAndNotId(@Param("id") Long id,@Param("name") String name);

    /**
     * 根据ID查询数据
     * @param id
     * @return
     */
    AttributeTemplateStandardVO getStandardById(Long id);

    /**
     * 查询表中所有字段
     * @return 表中所有记录
     */
    List<AttributeTemplateListItemVO> list();
}
